#include "StdAfx.h"
#include "CSubObj.h"

CSubObj::CSubObj(char * pNombre)
{
	strcpy(nSubObj, pNombre);
	numCaras = 0;
	numNormales = 0;
	numTexturas = 0;
	numVertices = 0;
}

CSubObj::~CSubObj(void)
{
}
// Adds

void CSubObj::addV(char** var, int count) // A este metodo nos llega un array  con count elementos, el primero es un char que indica que tipo de array es (vertices, caras, etc.)
{
	for ( int i = 1; i <= count; i++) // Empezamos por 1 porque la primera es el tipo (v, vn, vt, etc.)
	{
		 sscanf(var[i],"%f", &m_vertices[numVertices][i-1]); // Asignamos el vertice numVertices el numero de variable count (normalmente count es menor que 3)
	}
	numVertices++;
}
void CSubObj::addN(char** var, int count)
{
	for ( int i = 1; i <= count; i++) // Empezamos por 1 porque la primera es el tipo (v, vn, vt, etc.)
	{
		sscanf(var[i],"%f", &m_normales[numNormales][i-1]); // Asignamos el vertice numVertices el numero de variable count (normalmente count es menor que 3)
	}
	numNormales++;

	/*m_normales[numNormales][0] = x;
	m_normales[numNormales][1] = y;
	m_normales[numNormales][2] = z;
	numNormales++;*/
}
void CSubObj::addT(char** var, int count)
{

	for ( int i = 1; i <= count; i++) // Empezamos por 1 porque la primera es el tipo (v, vn, vt, etc.)
	{
		 sscanf(var[i],"%f", &m_normales[numNormales][i-1]); // Asignamos el vertice numVertices el numero de variable count (normalmente count es menor que 3)
	}
	numTexturas++;

	/*m_texturas[numTexturas][0] = x;
	m_texturas[numTexturas][1] = y;
	numTexturas++;*/
}
void CSubObj::addF(char** var, int count)
{
	
	if (count == 4) {
		float v1;
		float v2;
		float v3;
		float v4;
		sscanf(var[1],"%f", &v1);
		sscanf(var[2],"%f", &v2);
		sscanf(var[3],"%f", &v3);
		sscanf(var[4],"%f", &v4);
		m_caras[numCaras][0] = v1;
		m_caras[numCaras][1] = v2;
		m_caras[numCaras][2] = v3;
		numCaras++;
		m_caras[numCaras][0] = v1;
		m_caras[numCaras][1] = v3;
		m_caras[numCaras][2] = v4;
		numCaras++;
	}
	else {
		for ( int i = 1; i <= count; i++) // Empezamos por 1 porque la primera es el tipo (v, vn, vt, etc.)
		{
			 sscanf(var[i],"%f", &m_caras[numCaras][i-1]); // Asignamos el vertice numVertices el numero de variable count (normalmente count es menor que 3)
		}
		numCaras++;
	}
	

	/*m_caras[numCaras][0] = vert;
	m_caras[numCaras][1] = text;
	m_caras[numCaras][2] = norm;
	numCaras++;*/
}

// Setters

void CSubObj::setMaterial(char * pMaterial)
{
	strcpy(nMaterial, pMaterial);
}